// 数字以123456789101112131415的格式化序列到一个字符序列中，现在给定整数n，要求返回任意第n位对应的数字

// 思路，找规律，确定start值，位数digits
// 1-9，start = 1， digits = 1， count = 9
// 10 - 90， start = 10， digits = 2， count = 9 * 10
// 100 - 900， start = 100， digits = 3， count = 9 * 100
// 时间复杂度：O(logn)
// 空间复杂度：O(1)

function findNthDigit(n) {
    let start = 1
    let digits = 1
    let baseCount = 9
    while (n > baseCount) {
        n -= baseCount
        start *= 10
        digits += 1
        baseCount = start * digits * 9
    }
    let val = start + Math.floor((n - 1) / digits)
    let index = (n-1) % digits
    return Number(String(val)[index]) 
}

console.log(findNthDigit(256))